#!/usr/bin/env python
# -*-coding:utf-8-*-
# File    : liyuqi.py
# Date    : 2021-04-08
# Author  : Tom.Lee

from random import shuffle


def exchange_gift(n: int) -> dict:
    if n < 3:
        raise ValueError("人数不能少于3人")
    person_gifts = [('人员{}'.format(i), '礼物{}'.format(i))
                    for i in range(1, n + 1)]
    # 打乱列表
    shuffle(person_gifts)
    result = {}
    # 交换礼物，每个人获得后面一个人的礼物
    for x in range(n - 1):
        result[person_gifts[x][0]] = person_gifts[x + 1][1]
    # 最后一个人获得第一个人的礼物
    result[person_gifts[-1][0]] = person_gifts[0][1]
    return result


if __name__ == '__main__':
    print("当有10人时，分配如下：")
    res = exchange_gift(10)
    for k, v in res.items():
        print('{}得到{}'.format(k, v))
